﻿using System;

namespace Eassets.Layered.Domain.Asset
{
    /// <summary>
    /// Represents the AssetTransferOutDetails entity.
    /// </summary>
    [Serializable]
    public sealed class AssetTransferOutDetails
    {

        #region Fields

        /// <summary>
        /// The Asset Transfer Out Id of the AssetTransferOutDetails.
        /// </summary>
        private long assetTransferOutId;
        /// <summary>
        /// The Transaction Id of the AssetTransferOutDetails.
        /// </summary>
        private long transactionId;
        /// <summary>
        /// The Company Id of the AssetTransferOutDetails.
        /// </summary>
        private long companyId;
        /// <summary>
        /// The From Organization Level List Id of the AssetTransferOutDetails.
        /// </summary>
        private string fromOrganizationLevelListId = string.Empty;
        /// <summary>
        /// The To Organization Level List Id of the AssetTransferOutDetails.
        /// </summary>
        private string toOrganizationLevelListId = string.Empty;
        /// <summary>
        /// The Transaction Number of the AssetTransferOutDetails.
        /// </summary>
        private string transactionNumber = string.Empty;
        /// <summary>
        /// The Asset Id of the AssetTransferOutDetails.
        /// </summary>
        private string assetId = string.Empty;
        /// <summary>
        /// The Item Serial Code of the AssetTransferOutDetails.
        /// </summary>
        private string itemSerialCode = string.Empty;
        /// <summary>
        /// The Transaction Quantity of the AssetTransferOutDetails.
        /// </summary>
        private long transactionQuantity;
        /// <summary>
        /// The Unit Price of the AssetTransferOutDetails.
        /// </summary>
        private decimal unitPrice;
        /// <summary>
        /// The Total Price of the AssetTransferOutDetails.
        /// </summary>
        private decimal totalPrice;
        /// <summary>
        /// The Originated By of the AssetTransferOutDetails.
        /// </summary>
        private string originatedBy = string.Empty;
        /// <summary>
        /// The Asset Status of the AssetTransferOutDetails.
        /// </summary>
        private string assetStatus = string.Empty;
        /// <summary>
        /// The Transfer Date of the AssetTransferOutDetails.
        /// </summary>
        private DateTime transferDate;

        #endregion

        #region Properties


        /// <summary>
        /// Gets or sets the Asset Transfer Out Id of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Asset Transfer Out Id of the AssetTransferOutDetails.
        /// </value>
        public long AssetTransferOutId
        {
            get
            {
                return this.assetTransferOutId;
            }
            set
            {
                this.assetTransferOutId = value;
            }
        }

        /// <summary>
        /// Gets or sets the Transaction Id of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Transaction Id of the AssetTransferOutDetails.
        /// </value>
        public long TransactionId
        {
            get
            {
                return this.transactionId;
            }
            set
            {
                this.transactionId = value;
            }
        }

        /// <summary>
        /// Gets or sets the Company Id of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Company Id of the AssetTransferOutDetails.
        /// </value>
        public long CompanyId
        {
            get
            {
                return this.companyId;
            }
            set
            {
                this.companyId = value;
            }
        }

        /// <summary>
        /// Gets or sets the From Organization Level List Id of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The From Organization Level List Id of the AssetTransferOutDetails.
        /// </value>
        public string FromOrganizationLevelListId
        {
            get
            {
                return this.fromOrganizationLevelListId;
            }
            set
            {
                this.fromOrganizationLevelListId = value;
            }
        }

        /// <summary>
        /// Gets or sets the To Organization Level List Id of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The To Organization Level List Id of the AssetTransferOutDetails.
        /// </value>
        public string ToOrganizationLevelListId
        {
            get
            {
                return this.toOrganizationLevelListId;
            }
            set
            {
                this.toOrganizationLevelListId = value;
            }
        }

        /// <summary>
        /// Gets or sets the Transaction Number of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Transaction Number of the AssetTransferOutDetails.
        /// </value>
        public string TransactionNumber
        {
            get
            {
                return this.transactionNumber;
            }
            set
            {
                this.transactionNumber = value;
            }
        }

        /// <summary>
        /// Gets or sets the Asset Id of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Asset Id of the AssetTransferOutDetails.
        /// </value>
        public string AssetId
        {
            get
            {
                return this.assetId;
            }
            set
            {
                this.assetId = value;
            }
        }

        /// <summary>
        /// Gets or sets the Item Serial Code of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Item Serial Code of the AssetTransferOutDetails.
        /// </value>
        public string ItemSerialCode
        {
            get
            {
                return this.itemSerialCode;
            }
            set
            {
                this.itemSerialCode = value;
            }
        }

        /// <summary>
        /// Gets or sets the Transaction Quantity of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Transaction Quantity of the AssetTransferOutDetails.
        /// </value>
        public long TransactionQuantity
        {
            get
            {
                return this.transactionQuantity;
            }
            set
            {
                this.transactionQuantity = value;
            }
        }

        /// <summary>
        /// Gets or sets the Unit Price of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Unit Price of the AssetTransferOutDetails.
        /// </value>
        public decimal UnitPrice
        {
            get
            {
                return this.unitPrice;
            }
            set
            {
                this.unitPrice = value;
            }
        }

        /// <summary>
        /// Gets or sets the Total Price of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Total Price of the AssetTransferOutDetails.
        /// </value>
        public decimal TotalPrice
        {
            get
            {
                return this.totalPrice;
            }
            set
            {
                this.totalPrice = value;
            }
        }

        /// <summary>
        /// Gets or sets the Originated By of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Originated By of the AssetTransferOutDetails.
        /// </value>
        public string OriginatedBy
        {
            get
            {
                return this.originatedBy;
            }
            set
            {
                this.originatedBy = value;
            }
        }

        /// <summary>
        /// Gets or sets the Asset Status of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Asset Status of the AssetTransferOutDetails.
        /// </value>
        public string AssetStatus
        {
            get
            {
                return this.assetStatus;
            }
            set
            {
                this.assetStatus = value;
            }
        }

        /// <summary>
        /// Gets or sets the Transfer Date of the AssetTransferOutDetails.
        /// </summary>
        /// <value>
        /// The Transfer Date of the AssetTransferOutDetails.
        /// </value>
        public DateTime TransferDate
        {
            get
            {
                return this.transferDate;
            }
            set
            {
                this.transferDate = value;
            }
        }

        #endregion

    }
}
